package com.winshare.saleAssistant.mapper;

import com.winshare.saleAssistant.domain.dto.req.*;
import com.winshare.saleAssistant.domain.entity.OrganizationDO;
import com.winshare.saleAssistant.domain.query.OrganizationQuery;
import com.winshare.saleAssistant.domain.dto.resp.OrganizationRespDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface OrganizationMapStruct {

    OrganizationMapStruct INSTANCE = Mappers.getMapper(OrganizationMapStruct.class);
    
    OrganizationQuery fromOrganizationReqDTO(OrganizationQueryDTO reqDTO);

    List<OrganizationRespDTO> toOrganizationRespDTO(List<OrganizationDO> organizationDOList);

    OrganizationDO fromOrganizationCreateDTO(OrganizationCreateDTO organizationCreateDTO);

    OrganizationDO fromOrganizationUpdateDTO(OrganizationUpdateDTO organizationUpdateDTO);

    OrganizationDO fromOrganizationDeleteDTOI(OrganizationDeleteDTO organizationDeleteDTO);

    OrganizationDO fromBaseIdDTO(BaseIdDTO baseIdDTO);

    OrganizationRespDTO fromOrganizationDO(OrganizationDO organizationDOInSql);
}
